// 封装Ajax
function ajaxPromise(option) {
    return new Promise(function (resolve, reject) {
        //1.创建AJAX核心对象
        const xhr = new window.XMLHttpRequest()
        const method = option.method.toUpperCase() //请求方法转大写

        if (method == 'GET') {
            //2.建立连接
            xhr.open(option.method, option.url + '?' + formateParme(option.data))
            //3.发送请求
            xhr.send()
        } else if (method == 'POST') {
            //2.建立连接
            xhr.open(option.method, option.url)
            // 设置类型
            xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
            //3.发送请求
            xhr.send(formateParme(option.data))
        }
        //4.处理响应
        xhr.onreadystatechange = function () {
            // 如果状态等于4
            if (xhr.readyState == 4) {
                // 正确获取到了状态代码会等于200
                if (xhr.status == 200) {
                    // 将返回的文本转为数组
                    let data = JSON.parse(xhr.responseText)
                    // 如果在数组中找到就为正确
                    resolve(data)
                } else {
                    reject('出错啦！！！' + xhr.status + '-' + xhr.statusText)
                }

            }
        }
    })
}

function ajax(option) {
    //1.创建AJAX核心对象
    const xhr = new window.XMLHttpRequest()
    const method = option.method.toUpperCase() //请求方法转大写

    if (method == 'GET') {
        //2.建立连接
        xhr.open(option.method, option.url + '?' + formateParme(option.data))
        //3.发送请求
        xhr.send()
    } else if (method == 'POST') {
        //2.建立连接
        xhr.open(option.method, option.url)
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
        //3.发送请求
        xhr.send(formateParme(option.data))
    }
    //4.处理响应
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                let data = xhr.responseText
                option.success(JSON.parse(data))
            } else {
                option.fail('网络出错' + shr.status + '-' + shr.statusText)
            }
        }
    }
}


function formateParme(data) {
    let arr = []
    for (const key in data) {
        let item = `${key}=${data[key]}` //username=admin,password=123
        arr.push(item) //[username=admin,password=123]
    }
    return arr.join('&')
}